<?php

final class GerenciaFuncionario{
	private $objectFuncionario;
	private $sqlFuncionario;
	private $resultFuncionario;
	private $parametro;
	private $conexao;
	
	public function __construct(ConectaMysql $conexao){		
		$this->conexao = $conexao;
	}
	
	public function insertFuncionario(Funcionario $objectFuncionario){
        $this->objectFuncionario = $objectFuncionario ;
        
		$this->conexao->executaQuery(
		"INSERT INTO tb_funcionario(`FUNnome`,`FUNsobrenome`,`FUN_SETid`,`FUNdata`) 
		VALUES ('".($this->objectFuncionario->getNome())."',
				'".($this->objectFuncionario->getSobrenome())."',
				'".($this->objectFuncionario->getSetorId())."',NOW())"
		);

	}
	
	public function updateFuncionario(Funcionario $objectFuncionario){
        $this->objectFuncionario  = $objectFuncionario;        

		$sqlUpdate = "UPDATE tb_funcionario SET
						FUNnome = '".($this->objectFuncionario->getNome())."', 
						FUNsobrenome = '".($this->objectFuncionario->getSobrenome())."',
						FUN_SETid  = '".($this->objectFuncionario->getSetorId())."',
						FUNstatus = '".($this->objectFuncionario->getStatus())."' 
					 WHERE 
						(FUNid = '".($this->objectFuncionario->getId())."')";
						
						
        $this->conexao->executaQuery($sqlUpdate);
			

	}
	
	public function selectFuncionario($parametro = null, $modoAlterar = false){
		$this->parametro = addslashes($parametro);
		
		$this->sqlFuncionario = "SELECT * FROM tb_funcionario 
							   INNER JOIN tb_setor ON
							   tb_setor.SETid = tb_funcionario.FUN_SETid
							   INNER JOIN tb_acesso ON
							   tb_acesso.ACE_FUNid = tb_funcionario.FUNid
							   INNER JOIN tb_privilegio ON
							   tb_privilegio.PRIVid = tb_acesso.ACE_PRIVid
							   WHERE (tb_funcionario.FUNstatus = '1')";
							   
		if(isset($this->parametro)){
			if ($modoAlterar == true){ 
				$this->sqlFuncionario = $this->sqlFuncionario." and (tb_funcionario.FUNid = '".$this->parametro."')"; 
			}else{
				$this->sqlFuncionario = $this->sqlFuncionario." and (tb_funcionario.FUN_SETid = '".$this->parametro."')"; 
			}
		}

		$this->sqlFuncionario = $this->sqlFuncionario." ORDER BY FUNnome, FUNsobrenome";
		$this->resultFuncionario  = $this->conexao->executaQuery($this->sqlFuncionario);
		return $this->resultFuncionario;
	}
	
	
	public function selectMaxId(){
		
		$this->sqlFuncionario = "SELECT MAX(FUNid) as FUNid FROM tb_funcionario";	
		$this->resultFuncionario  = $this->conexao->executaQuery($this->sqlFuncionario);
		return $this->resultFuncionario;
	}

}
	
?>